package com.zhu.esyblog.Utils;

import io.jsonwebtoken.Jwt;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class TokenUtils {
    private static  final String jwtToken="123456zhu!@@#";

    /**
     * 创建token
     * @param userId
     * @return
     */
    public  static  String createToken(Long userId){
        Map<String,Object> claims=new HashMap<>();
        claims.put("userId",userId);
     JwtBuilder jwtBuilder= Jwts.builder()
             .signWith(SignatureAlgorithm.HS256,jwtToken)//签名 算法
             .setClaims(claims) //body数据
             .setIssuedAt(new Date()) //签发时间
             .setExpiration(new Date(System.currentTimeMillis()+24*60*60*1000));  //过期时间
        String token= jwtBuilder.compact();
        return  token;
    }
    /**
     * 解析token是否合法
     */
    public static Map<String,Object> checkToken(String token){
        try{
            Jwt parse = Jwts.parser().setSigningKey(jwtToken).parse(token);
            return (Map<String, Object>) parse.getBody();
        }catch (Exception e){
            e.printStackTrace();
        }
      return null;
    }



}
